Top 10k strings from Supercode 4 (1985)(Supersoft).tzx in <root> / bin / z80 / software / Sinclair Spectrum Collection TOSEC.exe / Sinclair ZX Spectrum - Utilities & Educational / Sinclair ZX Spectrum - Utilities & Educational - [TZX] (TOSEC-v2007-01-01) /

Back to the directory listing

   3 "23659",F:
   3 "23658",O:
   2 to be replaced.     
   2 s of the  
   2 23635+256*
   2 *"m";NN;C$(
   2 *"m";E;"SUPERCODE3"
   2 "23791",F:
   2 "23659",D:
   2 "16"-G*(N<P);",";
   2 " This routine
   1 variables"'" (3) Numeric Arrays"'" (4) 
   1 value (56 initially)."'" 
   1 to the bottom 2   
   1 to the    lower X (0<X<25)
   1 to be located":
   1 this routine before loading Incidentally, to check if your  Spec is Issue3,
   1 this rout -ine within(using
   1 the following:-"'"
   1 the 2-  byte equivalent(see #101)of the address of the 
   1 that is to  be transformed,into ";:
   1 such lines."
   1 statement at
   1 start in mem."
   1 sets  like  the SCIFI in #79).
   1 scrolls   when re 
   1 s. Also see #82,#90,#100,#103&#104"
   1 s,by combining 
   1 s will not work if 
   1 s which are stored in RAM(ie,UDGs or alternative 
   1 s when logically possible.Also see #64 #90,#100,#103&#104."
   1 s to 23813, not 23755 
   1 s the no: of 
   1 s the length of the BASIC program.   Memory  used by variables is ignored.   Also see #103,#111."'" Incidentally,to distinguish 16K from 48K Spectrums,
   1 s the address of the first 
   1 s RAMTOP to its  original value, zeroes the      entire memory & resets System   Variables,UDGs & stack."
   1 s 22/23. (k=0 for 22,k=1 for 23)"
   1 s & statements in a prog.  Restart SUPERCODE with
   1 s  before EVERY call
   1 routine,&  let x=no: after LD,de.Use #115  with a higher start address & x =no: of bytes.The file should   
   1 quotes  to save space.Also see #64,#82  & #100."
   1 prog autostart,  enter 1
   1 part2 of your program with the header of another prog, by  manipulating Record/Pause keys  on taperec.Call this routine in part1,& immediately after,call  routine115.Part2 will now auto-
   1 p,q if bytes)  Use the same
   1 out these    Instructions.
   1 on variables, instead use   
   1 on all 24 lines of the 
   1 of the same 
   1 of bottom two   
   1 of BASIC containing a prespecified sequence of 
   1 of  a given 
   1 n to    prevent the scroll? prompt from corrupting the 
   1 it to a different address, >23900 so it does not overlap   with the System variables."'" (c)To 
   1 it back with
   1 is to be execu- ted.Enter 
   1 is renumbered(except for arguments like 2.8 or N+3,which are high- lighted.If arg
   1 is  possible:use
   1 instruction. After,  
   1 ing the two parts."
   1 in non-deletab-le lines:the listing vanishes   5)Autostart by using
   1 in  a BASIC program by another 
   1 from X to X+6911,
   1 from Part1,but anyone who  attempts to
   1 for another 
   1 etc. Then    
   1 ed/reset Spectrum. (5)Press 
   1 ed,use routine119 before each
   1 ed,the BASIC will  autorun,& will start the 
   1 ed into a Spec with shadow ROM paged in,as the prog
   1 ed came from tape/Mdrve,   
   1 each     part immediately before saving  the next one:this ensures that  there will be no delay between  
   1 d, it must be relocated by the samenumber of bytes."'"(2)It is possible to relocate # 22,23,71&76 too,but only to add-resses which are multiples  of  256 away from the original  add-resses.Proceed as follows: Get  the page of the routine,& press Q to quit.The original address  is A - say you want to relocate it to A+256*ZZ,where ZZ is a +/-integer.";
   1 d into 62866 & 62867 respectively. The 4 columns are addr,contents in  dec+hex & 
   1 d into 57124/5);if not,you will   
   1 commands with 
   1 co-ordinates of the";'" top left hand corner of the box
   1 co-  ordinates of the top-left hand  corner of the box."
   1 at any  position on the screen: ie, to  find the 
   1 at ANY    position X,Y on the 
   1 as   well as resets 
   1 areutilised.)":
   1 are set  up as UDGs. To return to usual  UDGs,
   1 address   from which 
   1 able). Use N to exit.
   1 a higher RAMTOP first."
   1 a headerless file,   disassemble its
   1 a RAMTOP belowZ &
   1 ________"'
   1 ZX SPECTRUM MACHINE CODE TOOLKIT
   1 ZX INTERFACE1 MUST BE ATTACHED
   1 ZX INTERFACE 1 ATTACHED
   1 Z=A+G-F*(N=
   1 Z;" /"'" ";Z+1
   1 Z2=235    
   1 Z2=231Enter:-  9990
   1 Z2=229    
   1 Z$:to work   
   1 Z if from Microdrive).If anaddress >23800 is to be
   1 X.For the error 
   1 X-3,0 The program will work provided  you do not
   1 X+1,0. To do   this to other lines, first find their address X using routine   88, then
   1 UMP PAGE#/ 
   1 UIT AND EXAMINE LINE 1210
   1 Transfer OK"'"
   1 This is Line #";Z
   1 TO SEE  HOW THIS WAS DONE,";
   1 THERE HAS BEEN A RECORDING ERROR
   1 THE MICRODRIVE VERSION
   1 Start address:
   1 Start Addr  2 
   1 Space (1-255)"
   1 SUPERCODE4
   1 SAVE*""m"";1;
   1 S with Interval I 
   1 S U P E R C O D E  II
   1 Routine Starts at ";A
   1 Routine Ends at   ";A+B-E;
   1 Recording OK
   1 ROUTINE NO:
   1 ROUTINE IN ROM
   1 ROUTINE #";N;"
   1 RELOCATING SUPERCODE II ROUTINES
   1 RAM SIZE: 48K"''"PROGRAM LOADED FROM CASSETTE
   1 Q,E;"This routine
   1 Q,E;"Programs with m/c in 
   1 Q,E;"Call this routine at the start  of your program.
   1 Q,D;" The Spectrum doesn't check if   there is enough space free in   its memory before
   1 Part2 by other means will crash the computer." 
   1 P,D;" To break into autostart progs,  (a)Instead of
   1 P,D;" (a)To check whether a ZX Inter-  face1 is connected,see whether  or not an error is produced if  an instruction like 
   1 ON /OFF checkerboard on the 
   1 O,E;"In order to make the FIRST line of your program non- deletable  
   1 NON-RELOCATABLE ... use L
   1 NO: ROUTINE 
   1 NO MORE OCCURRENCES
   1 MICRODRIVE
   1 MEMORY AVAILABLEN
   1 M,E;"To make a 
   1 J;"----> ";
   1 J,H;"Routine Length is ";B;" bytes
   1 If this is OK, press enter.If itis not, enter the new name (notethat only the first ten 
   1 INSTRUCTIONS  ON THE TRANSFER OF SUPERCODE II  TO ZX-MICRODRIVE 
   1 INDEX PAGE ";(
   1 I;"Less Sig  More Sig":
   1 H,D;" The ZX Microdrive spends most   of its time trying to locate a  file - actual loading is swift. 2 ways of saving files so that  they can be accessed faster are (a)
   1 G,D;"1)Make line1 1
   1 F.VACHHA BSc
   1 Enter Routine No: 
   1 Enter Index Page No: 
   1 ERROR CODE: ";N$:
   1 D,D;A$;A$;A$;A$:
   1 Copying copies is FORBIDDEN
   1 Arrays"'" (5) FOR..NEXT control variables"'" Also see #70.";
   1 ANY OTHER KEY
   1 A/C/D/E/I/J/L/M/N/P/Q/R/S/T
   1 A$;A$;A$;A$:
   1 >1 copies of the file   on the same cartridge:for x     copies,do
   1 =>Hex(0-FFFF) Enter the no: to be converted.  Routine autorepeats-'Q' quits,&
   1 :these can be  
   1 :if  not,only 1 of the copies might  be erased."'" (b)When saving different parts   of the program,
   1 :Swop sets all squares    with the item On,to Off, & all  with the item Off,to On." 
   1 :On/Off toggle the given  Colour item"'" 
   1 : then call this routine.  You will be in EDIT mode, but   with the cursor at the END of   the 
   1 9990, & proceedto
   1 7,13, enter PRINT 
   1 65360/1 with the 2 byte eq of the start addr of routine #63(Hex->Dec),which  must also be
   1 65290. All the memory from 32768 to 65535  is used.To replay,use #78."
   1 64834, Box Width"'"
   1 64832/5 with
   1 64831, Box height"'"
   1 64714/5, 2 byte eq of S    Also see #60."
   1 64711/2, 2 byte eq of I    
   1 64702, Frequency 2"
   1 64693, Frequency 1"'"
   1 64682, Duration"'"
   1 64670, 28(UP) or 29(DOWN)"
   1 64651, Duration"'" 
   1 64649, Span"'" 
   1 64648, Frequency"'" 
   1 63980/1,   2 byte eq of Start Address )    with the display 
   1 63951, Duration"
   1 63905, New 
   1 63903, Old 
   1 63801, No: to be inserted"
   1 63798/9, Start Address (2  byte eq)"'"
   1 63796, No: of bytes"'"
   1 63713/14 with the address  of the new 
   1 63652/53 with the 2-byte   equiv.(see #101)of the address  of the 
   1 63648,   no: of 
   1 63502,No: of 
   1 63499/500,2 byte equiv.     (see#101)of 
   1 63017/8, Time(ms) ""  """
   1 63014/5, Pitch( 2 byte eq) 
   1 63012, Number of notes     
   1 63011, Pitch Decrement     
   1 63004/5, Time(ms) ""   """
   1 63001/2, Pitch( 2 byte eq) 
   1 60039.Z contains the required 
   1 60020, Colours  (0-7)      
   1 60006, Duration (1-127)    
   1 58690/1,Addr to
   1 58687/8,No: bytes to
   1 58684/5,Addr to 
   1 58682,Box Length in 
   1 58681,Box Width in pixels  
   1 58680,64(Up)72(Mid)80(Low)
   1 58679,Top Left  Square 
   1 57342. 191=>Yes; 255=>No.To make Iss X progs work on Iss Y,precede all 
   1 57342,191( ifX=1/2,Y=3)or 255(ifX=3,Y=1/2)"
   1 57123,195 IF you wish to   execute m/c(from address
   1 57114/5, Addr of 1st byte  
   1 57110/1, Number of bytes   
   1 57091,X"'" Also see Routine #119"
   1 56777,Speed(from 1=Fast to 255=Slow):if too fast you might be unable to read it. Call the routine either before  running program(ignoring the    initial display)or during the   program.TRACE remains ON until  you enter 
   1 3756 does a
   1 32s.Also see #71"
   1 3,""s"" at the start"'" (2)To 
   1 23788.If =  Program length found with #104  then it came from a MicroDrive"
   1 23787+256*
   1 23728/9, 2 byte eq: of X   
   1 23693,X sets the global    
   1 23692,255    within the loop that generates  the lines."
   1 23676,255.";
   1 23676, 223   
   1 23670 & 23671 give   the less sig: & more sig: bytes respectively."
   1 23659,2. Use
   1 23659,0 before   each
   1 23659,0 at prog start -  the effect is that of no:5)."
   1 23636.If=23755,it hasn't  been paged in so far."'" (c)To check if the program just  
   1 23636,92.3)Use #59,#98,call #65/66 to disable BREAKs & #68 for nondeleta- ble 
   1 23636,150. To return to  normal
   1 23636),100. You can RUN but not LIST prog   until you
   1 23635+256  *
   1 23613 -2    9999 
   1 23610,255:
   1 23609,9. The improvement is great with long  
   1 23607, 60.";
   1 23607, 223   
   1 23606/7 WITH THE LESS/MORE SIGNIFICANT BYTES OF  THE START ADDRESS LESS 256(THIS IS CURRENTLY 0/223). TO RETURN  TO THE USUAL 
   1 23582,27.Now 
   1 23574+2*N,19+2*N"
   1 23562,2"'" 
   1 23552,RAMTOP-23550-F to    save your program disguised as  bytes- it will autostart at the first line."'" Also see #104.";
   1 23550,Address of LAST byte of 
   1 22/23"''" Alternatively,use
   1 120"'"Then enter
   1 10(No Error Trap)"'"Turn Page: Use ENTER or Jump"'"Menu:";:
   1 0)."''" Note that if X=
   1 0 restarts"
   1 0 reaccesses the toolkit.":
   1 0 (Error Trap)"'"         
   1 .Keeping the 
   1 .If the  lower part of 
   1 ."'" To speed up cursor response,use 
   1 . Incidentally,if a ZX-Interface1 is attached,enter   1
   1 - 23549. When the  
   1 ,use routine  87 to find its 
   1 ,to the given address,a headerless file"
   1 ,this routine merges a
   1 ,say X, to a  new 
   1 ,as does  the command
   1 ,L:BREAK are ignored."
   1 ,  on an empty Spectrum,to 
   1 ,    which saves space but reduces   speed. 0 is replaced by NOT PI. Also see #64,#82,#90,#103,#104. To save even more space,replace all commonly occurring numbers  (ie 0,1,2,10 etc)by variables,  defined at the start. Routine   #72 is useful for locating no:s"
   1 *ing:if  a program is long/RAMTOP is low it could crash when you try to  
   1 *ing long   programs.If any message besides 0 OK appears,shorten the prog:  or
   1 *"m";E;"SUPERCODE4":
   1 *"m";E;"SUPERCODE4"
   1 *""m"";n;Name$   
   1 * it.That would lose the   whole program.Instead,call this routine before
   1 *  ""m"";n;Name$(
   1 )to tfr parts 3&4."'"(4)You now have a verified copy  of SUPERCODE on microcartridge  -it will autostart if you enter 
   1 )to Tape/Microdrive,
   1 ). To access a routine whose no:  is known, press 
   1 ). For ways to relocate routines, press 
   1 ),No:s/Var (2.3,Z,A$),operations(*),rel(<) etc,or combinations of these.   
   1 ), or just after,part1,and call it from there.It will
   1 ) to restart. To get this routine's details  another time, press 
   1 (with Z=A+256*ZZ)as in case(1) overleaf.Note thatthe routine will no longer  workat its old address."'"(3)The ROM routines & #120 are vdifficult to relocate (why ever relocate a ROM routine?!),#77/78have to be located at the top ofRAM.":
   1 (same number),0.2)
   1 (Index). Use ENTER to turn pages To access the next routine in  the Index, press 
   1 (63768,63771)
   1 (63762)    
   1 (63744)   
   1 (63738)   
   1 (63732)     
   1 (1)Using PAUSE"'"(2)W/out PAUSE
   1 (1)Reset the Spectrum.Put a new  cartridge in Microdrive#1"'"(2)Enter
   1 (*)/ INDEX/ CUSTOMISE"'"Restart:
   1 (""SUPERCODE"", or  ERCO),commands( 
   1 (" 0:OK,8:END,9:STOP are ignored.  Or,errors can be suppressed w/o #65:use 1 
   1 '"This routine will be saved with the provisional name 
   1 '"If an error message appears, useGOTO 0 to restart."'"Enter the Microdrive number, or just press Enter for the default# of 1.":
   1 & statement no: currently being   executed.
   1 #4;   is executed(use with r.no:65)   This pages in the shadow ROM,   if present."'" (b)To check if the shadowROM is  paged in,
   1 #4 will call the m/c"
   1 # command does
   1 "To store this routine on a Microdrive cartridge,press 
   1 "The SAVE is over."'"Proceeding with VERIFY.":
   1 "Please replay the tape.":
   1 "OK,the name is
   1 "OK,the Microdrive # is
   1 "Further Reading: Programming the Z80 (R.Zaks,ISBN 0-89588-094-6) Complete SpectrumROMDisassembly (I.Logan&F.O'Hara,ISBN 0-86759- 117-X)":
   1 "F R ` F R `"'':
   1 "And now at slow speed":
   1 ";A+P;", Box Width"'"
   1 ";A+M;", Box Height"
   1 ";A+G;" with"'"
   1 ";A+E;", Overall Colour"
   1 ";A+E;", New Attribute Val"'"
   1 ";A+E;" /"'" ";A+F;", 2 byte equivalent of X."'"
   1 ";("60878/9"
   1 "9",H;"To call this routine, use";
   1 "9",D;" If the 2 byte equivalent of X = L(Less)/M(More) sig: bytes,then L+256*M=X.The less significant  byte comes 1st. This routine is an instant converter of numbers from 0-65535 to their 2 byte    equivalents.To convert X to its 2 byte equiv.,enter
   1 "66")'" with X. If an error occurs,prog control will move to 
   1 "65")+("60952/3"
   1 "65")+(" Errors besides D:BREAK,H:
   1 "64884",M:
   1 "60879",D:
   1 "60878",J:
   1 "60029",Z:
   1 "60029",I:
   1 "60020",F:
   1 "60006",I:
   1 "56777",E:
   1 "56"*(N<P)'" SCROLL-OFF:  
   1 "54"+(N<P):
   1 "53565"+N*K:
   1 "4)Embed  hidden colour CHR$ to   set
   1 "36"+A;", 26"'" SCROLL-OFF:
   1 "36"+A;", 0"
   1 "2590"*(N$="L")
   1 "23681"-E)/
   1 "23670"),:
   1 "23659",F*(N=
   1 "23606",D:
   1 "234"-Z,D:
   1 "23295"+Z,
   1 "20",E;"Also see Routines #22-23."
   1 "20"*(NMAX=F)
   1 "2.3025"):
   1 "19",E;"8 calls"
   1 "18",D;" WRAP-AROUND:
   1 "16";"Right"
   1 "15",E;"To scroll attributes as well,   refer to routines 37-40(define  suitable box & Attr value).Call the attribute scroll once per   1 call  of this routine.":
   1 "13";", 0";
   1 "111"),D;" 
   1 "109"),H;"
   1 "'''"Where any part of SUPERCODEII isused in commercial programs,you MUST give prominent credit to   this fact, in all packaging and advertising.Also,you must refer within the program to the joint authors of SUPERCODE II,F.VachhaBSc & V.B.Rumsey."'"Provided these conditions are   obeyed ,no other restriction on use of SUPERCODEII is imposed." :
   1 "''"Define Z1,Z2:-"'"For 
   1 "''"(1)To move a Relocatable Routineso that it starts at address  Z,first
   1 "'"Position: 56640-65535"'"Ramtop: 53589"'"Help Prog:
   1 "'"Number of Routines: 
   1 "#";N;": ";
   1 """""'" Incidentally,to
   1 " WRAP-AROUND: 
   1 " To store this routine on tape, press 
   1 " To renumber without
   1 " To renumber lines starting with S using interval I,
   1 " To help with
   1 " To follow '2 byte eq',see #101."
   1 " To delete all lines from X to Y 
   1 " This routine zeroes all numeric variables/arrays,sets all 
   1 " This routine waits till a key   (whose CODE will be put in L)is pressed.";
   1 " This routine undoes the effect  of #98, to allow lines of a     CONFUSEd program to be EDITed/  altered."
   1 " This routine swops all 
   1 " This routine simulates a power- off: ie, it not only does
   1 " This routine shortens+speeds up programs by deleting all
   1 " This routine scrolls up the     lower X (0<X<25)
   1 " This routine replays what #77   recorded. It is probably best   to use your cassette-recorder   (MIC socket) to amplify the     sound."
   1 " This routine replaces numbers   in the program by VAL 
   1 " This routine replaces each occ- urrence of a specified 
   1 " This routine prints out a full  analysis of memory contents,    starting at the address whose   less & more significant bytes   (see #101)have been
   1 " This routine places a random #  pair in the System Variable     SEED ( PEEK 23670 & 23671 )." ;
   1 " This routine operates on 
   1 " This routine merges a 
   1 " This routine loads information  stored in memory into an auto-  created
   1 " This routine lists each 
   1 " This routine lists all"'" (1) Numeric variables"'" (2) 
   1 " This routine inserts a given    number into a block of memory.  
   1 " This routine expands programs   so that there is exactly one    statement per line (except in   IF..THEN lines).In reply to the prompt, enter the no: of the    line you want expanded, or just ENTER if you want the entire    program expanded. You must use  #60 after calling this routine."
   1 " This routine enables you to     determine the 
   1 " This routine does
   1 " This routine deletes all hidden colour 
   1 " This routine decodes tapeheader information & prints out a full analysis (name, address, type,  length & auto-start details."
   1 " This routine allows hex
   1 " This routine allows a block of  lines to be relocated within a  BASIC program.In order to shift lines 4200 till 6745 so they    appear after2200 in the listing respond 4200,6745 & 2200 to the auto-prompts.The new lines will all have number 0.Now call #60  to renumber & #57 to delete the old lines. Fully errorproofed."
   1 " This does
   1 " The routine speeds up+contracts programs into the minimum no:of
   1 " The routine changes all squares with a given 
   1 " The routine
   1 " The free space F from the last  Variable to RAMTOP is printed.  Use
   1 " THIS IS AN EXAMPLE OF THE SCIFI 
   1 " Routines 94 to 97 change the    case (upper/lower)of strings or of the entire listing ( except  strings),as specified.Note that an effective way of switching   case from within programs is to POKE 23658,0 (LO) or 8(HI)."
   1 " Routines # 18-21 & 47 are all   special-effect scrolls."
   1 " Only the last 4 hex digits are  converted.Incidentally,ZX BASIC does not allow 
   1 " Move the cursor to the required 
   1 " In order to scroll a table of   data > 22 lines long without    stopping, use the command
   1 " INVERSE SCR:
   1 " Having connected the EAR socket of the cassette-recorder to the Spectrum,start playing the tape (Voice is best;Vol=Max),& 
   1 " For transfer of 
   1 " Follow the prompts to expand a  REM statement (to accommodate   code) anywhere in the program,  by up to 9999 bytes"
   1 " Error#6 if no: was out of range"
   1 " Draw multipointed-stars & rings by first plotting a point near  the middle of the screen & then using DRAW X,Y,N  where X & Y   have magnitudes from 10 to 60   & N lies between 1000 & 9999.   You should experiment."
   1 " Draw any closed figure on the   screen, then PLOT a point lying INSIDE it. POKE 59293 with the  Attribute value to be filled,&  then call this routine."
   1 " Decimal(0-65535)
   1 " Corrupts the listing without    affecting program execution:    attempting to EDIT/alter lines  could be fatal (thus useful for program protection, as are #68/ #80)."
   1 " By POKEing 23606 & 23607 with   different numbers, a corrupted  character set is obtained. To   normalise, POKE 23606,0 : POKE  23607,60. Protect your program  with this, temporarily normal-  ising before each PRINTing."
   1 " Also see Routine #122"
   1 " A set of accented 
   1  values are not changed.Refer to #25-27 for 
   1  to a ZX-Microdrive, press 
   1  to """" & all dimensioned 
   1  swops the  current screen & the STOREd one A screen has 6912 bytes (24*32* 8, + 24*32 Attributes) & should be stored above RAMTOP (CLEARed downwards for room).For 
   1  saves a screen,
   1  recalls it. 
   1  might not close every   stream: use this instead."''" Incidentally 1)To disable
   1  messages."
   1  is now called
   1  channel N (3<N<16) use
   1  SAVE""Name""CODE ";A;",";B
   1  ROUTINE # 65 HAS PREVENTED YOU  FROM BREAKING INTO THIS PROGRAM
   1  OVERPRINT
   1  ERR+1,0'.Any BREAK/ error will now cause a crash. 6)
   1  59580 ,I: POKE 59582/3,2 byte eq:of S Each 
   1  23733. Now 127=>16K, 255=>48K.";
   1  23692,x where x is the no: of   lines to be scrolled. To scroll 'forever' use
   1  1.The 2 byte equivalents(see #  101)of the starting address of  the memory & the no: of bytes   must be stored in 63209/10 and  63206/07 respectively."
   1  -rewind & replay the cassette   from the start.When you come to this page,press 
   1  (Tape)."'"Note address,length,customising POKEs(if any)etc for future ref:":
   1  (Repeat)."'" For a demo, press 
   1  (Quit). Use
   1  (Number).":
   1  (MDrve)."
   1  (Demo)."'" To return to the Index, press 
   1  ( Location Change ).     For BASIC, press 
   1   the cursor is pointing to.";
   1   stored in RAM (
   1   no:,the next valid
   1   k,0;  to
   1   into RAM.POKE 23563/4 with the  2 byte eq: of the first address to be changed
   1   but also
   1   X,Y;""Optional Message"";Variable The method works with
   1    key pressed,play the cassette.  This tfrs parts 1&2."'"(3)After the reset enter 
   1    arrays to 
   1    V.RUMSEY   
   1    BASIC programs."'" (b)To